package com.shrct.businessprocess.process_test;

import com.shrct.businessprocess.organization.RCEmployee;
import com.shrct.businessprocess.process_test.impl.MyProcessImpl;
import com.shrct.businessprocess.process_test.proxy.MyProcessProxy;
import edu.fudan.langlab.domain.workflow.BusinessProcess;
import edu.fudan.mylang.pf.EntityImplementation;

@EntityImplementation(implementBy = MyProcessImpl.class)
public interface MyProcess extends BusinessProcess {
  public abstract void start(final RCEmployee sale, final RCEmployee manager);
  
  public abstract void apply();
  
  public abstract void evaluate_reject();
  
  public abstract void evaluate_confirm();
  
  public abstract void confirmFork();
  
  public abstract void wireMoney(final String comment, final Double amount);
  
  public abstract void achieve();
  
  public abstract void commit();
  
  public abstract RCEmployee getMyProcessSale();
  
  public abstract MyProcess setMyProcessSale(final RCEmployee myProcessSale);
  
  public abstract RCEmployee getMyProcessManager();
  
  public abstract MyProcess setMyProcessManager(final RCEmployee myProcessManager);
  
  public abstract MyProcessProxy toProxy();
}
